Antarctic Mission - Prompt blocks
The scaffold is generated by the calibration website.
Prompt blocks
Block A - Constants / Globals
You are editing an Arduino Uno `.ino` sketch step by step.
# RULES
- Keep the code very similar to the provided sketch in structure, naming style, and general style.
- Do not redesign the project architecture.
- Keep the section order:
1. includes
2. constants / globals
3. helper functions
4. setup
5. loop
- Keep the sketch compilable after this step.
- Return the full updated sketch.
- Modify only what is needed for this step.
- Do not invent final calibration values.
# TASK FOR THIS STEP
Review and refine only the CONSTANTS / GLOBALS section.
## REQUIREMENTS
- preserve the current coding style
- keep:
- float ambientTempC = AMBIENT_TEMP_C;
- float boardSideCm = BOARD_SIDE_CM;
- add a new calibration variable for the rotation angle of the motor in degrees
- calculate SWEEP_STEPS dynamically based on this rotation angle and stepsPerDegree
- keep motor configuration simple
- keep:
- const int START_OFFSET_STEPS = 0;
- int currentMotorPosition = 0;
- keep stepsPerDegree as a simple approximate conversion
- keep TOTAL_PIXELS = 64
- do not implement loop logic yet
- do not modify any other sections except the constants / globals section
## SECTION TO REVIEW
// ===================== CONSTANTS / GLOBALS =====================
# CURRENT FULL CODE
[PASTE THE INITIAL SCAFFOLD HERE]Block B - Motor / Angle helpers
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on the motor / angle helper section.
- Make only minimal necessary edits elsewhere.
- Do not invent or replace final calibration values.
# TASK FOR THIS STEP
Complete the motor / angle helper logic.
## REQUIREMENTS
- keep the original style simple
- keep SWEEP_STEPS as the sweep span already defined in the globals
- add simple helpers to convert motor position to angle in degrees
- keep 0° -> X° -> 0° sweep behavior conceptually
- keep currentMotorPosition logic similar to the scaffold
- do not redesign the whole project
- do not implement the full loop logic yet
- do not modify any other sections except the motor / angle helpers section
# SECTION TO REVIEW
// --- MOTOR / ANGLE HELPERS ---Block C - Ultrasonic helpers
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on the ultrasonic helper section.
- Make only minimal necessary edits elsewhere.
- Keep the code simple and suitable for Arduino Uno.
# TASK FOR THIS STEP
Complete the ultrasonic helper logic.
## REQUIREMENTS
- keep the existing style and structure if possible
- keep:
- readUltrasonicDuration()
- microsecondsToCentimeters()
- return distance in cm from pulse duration
- you may add a helper to average multiple readings
- valid distance rule is exactly:
5 < x < d
- use boardSideCm as d
- out-of-range values must not count as valid later
- keep the code simple and readable
- do not implement full detection/reporting logic here unless minimally necessary
- do not modify any other sections except the ultrasonic helpers section
# SECTION TO REVIEW
// --- ULTRASONIC HELPERS ---Block D - Infrared sensor helpers
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on the thermal helper section.
- Make only minimal necessary edits elsewhere.
# TASK FOR THIS STEP
Complete the thermal helper logic.
## REQUIREMENTS
- read the full 8x8 AMG8833 temperature matrix
- compute the maximum temperature across all 64 pixels
- do not use only middle columns
- keep the code simple and readable
- keep memory usage suitable for Arduino Uno
- avoid unnecessary buffers if possible
- do not implement detection/reporting logic here unless minimally necessary
- do not modify any other sections except the thermal helpers section
# SECTION TO REVIEW
// --- THERMAL HELPERS ---Block E - Detection / Reporting helpers
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on the detection / reporting helper section.
- Make only minimal necessary edits elsewhere.
- Do not redesign the project.
# TASK FOR THIS STEP
Complete the detection and reporting logic.
## REQUIREMENTS
- target is detected only if both are true:
- distance is valid
- maximum temperature > getHotThreshold(distanceCm, boardSideCm, ambientTempC)
- use the already existing threshold function exactly as it is
- serial output must show:
- current distance
- current motor angle
- maximum temperature
- detection status
- keep the style similar to the scaffold
- avoid String and dynamic memory
- keep helper logic separate and simple
- do not modify any other sections except the detection / reporting helpers section
# SECTION TO REVIEW
// --- DETECTION / REPORTING HELPERS ---Block F - Setup
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on setup().
- Make only minimal necessary edits elsewhere.
- Do not invent or replace final calibration values.
# TASK FOR THIS STEP
Complete setup() consistently with the helper logic already created.
## REQUIREMENTS
- initialize Serial
- initialize Wire
- initialize motor driver
- initialize AMG8833 sensor
- keep optional start offset behavior
- keep sweep configuration generic
- do not redesign the structure
- do not modify any other sections except the setup section
# SECTION TO REVIEW
// ===================== SETUP =====================Block G - Main Loop
You are editing the next step of the same Arduino Uno sketch.
# RULES
- Keep the code very similar to the current version.
- Return the full updated sketch.
- Work mainly on loop().
- Make only minimal necessary edits elsewhere.
- Do not invent or replace final calibration values.
- Do not redesign the project.
# TASK FOR THIS STEP
Complete the logic inside the main loop.
## REQUIREMENTS
- preserve the current forward / backward sweep structure
- forward sweep must go from 0° to X°
- backward sweep must go from X° to 0°
- use SWEEP_STEPS as the current configured sweep span
- read sensors at each motor step
- use the already defined ultrasonic, thermal, and detection/reporting helpers
- keep angle tracking consistent in both directions
- keep serial reporting active
- do not modify any other sections except the main loop section
# SECTION TO REVIEW
// ===================== MAIN LOOP =====================